Referring to FIG. 1, a schematic of a typical construction of a dynamic random access memory (DRAM) is shown. During the write mode, data to be written into the DRAM is applied to the input and amplified by write amplifier WR. Switches S2 and S3 are open, switches S1 and S4 are closed, and capacitor C is either charged or discharged according to the status of the input data, as amplified by write amplifier WR. During the read mode, switches S1, S3 and S4 are open, and switch S2 is closed so that the voltage on capacitor C is compared to a reference voltage Vref by read amplifier RE. According to the difference determined by read amplifier RE, either a binary "one" or "zero" is transmitted to the output of the DRAM. When in the data-hold mode, all the switches S1, S2, S3 and S4 remain open so that the stored charged remains in capacitor C. However, due to the unavoidable presence of leakage resistance R, the capacitor charge will gradually dissipate. To compensate for this, a process called refreshing must be periodically used in the DRAM. To achieve refreshing, all three switches S1, S2, and S3 are closed and switch S4 is open, and the binary state detected by read amplifier RE is amplified by write amplifier WR and reapplied to storage capacitor C. Switches S3 and S4 thus form a multiplexer which selects either input data or refresh data for application to write amplifier WR. The dashed line in FIG. 1 represents the boundary of an integrated circuit chip. Elements within the dashed line are typically integrated on a single chip.
In practice, a DRAM includes a great number of storage capacitors C arranged in matrix or array form along with row decoder and column decoder circuitry. The storage elements of the array must be periodically refreshed, and are typically refreshed on a row-by-row basis. The row decoder and column decoder circuitry, as well as the read amplifiers and write amplifiers, are typically integrated within the same semiconductor chip with the individual storage elements of the array. FIG. 2 is a block diagram of a type HM 511000 dynamic RAM available from Hitachi America, Ltd., which includes eight 128k memory cell arrays 10 connected through read/write amplifiers 11 to I/O bus 12. Individual rows and columns of the cell arrays 10 are selected by row decoder 13 and column decoder 14, under control of address data contained on address bus 14 via row address buffer 16 and column address buffer 17, and under control of row access strobe signal, RAS, and column access strobe signal, CAS. Reading and writing is controlled by read/write input, WE, and one-bit input and output data is buffered in I/O buffer 18. Once again, elements within the dashed line in FIG. 2 are integrated together on a single chip.
When logical operations are required to be performed on data stored in a DRAM, data must be read from the desired storage elements of the array and applied to the single-bit output of the DRAM for application to logic circuitry external to the integrated circuit chip. After the logic function is performed, the result is applied to the single-bit input of the DRAM for buffering and storage in desired storage elements of the array. Such operation of a dynamic RAM is found, for example, in single-instruction-multiple-datastream (SIMD) computers wherein a single logical operation is performed on a plurality of data elements. Such SIMD operations may be performed cyclically in order to trade off cost for speed. During cyclic operation, the same operation is performed in one or more data cells, and within each data cell, the operation is performed identically on one or more data words which are processed sequentially. However, as mentioned above, periodic refreshing of the dynamic RAM is necessary in order to avoid dissipation of the data indicating charge on the storage capacitor. This refreshing is generally interleaved with any logical operations performed on the data, which necessarily limits the speed at which cyclic logical operations can be performed on data stored in a dynamic RAM.